﻿using Common.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Wallpaper.Models.DTOs.Requests.Wallpaper;
using Wallpaper.Models.DTOs.Requests.WallPaper;
using Wallpaper.Models.DTOs.Responses.Wallpaper;

namespace Wallpaper.Services.IService
{
    public interface IWallpaperService
    {
        /// <summary>
        /// 小程序壁纸上传
        /// </summary>
        /// <param name="request"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<bool> AppUploadWallpaperAsync(AppUploadWallpaperRequest request, string userId);


        /// <summary>
        /// 删除壁纸
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> DeleteByIdAsync(string id);


        /// <summary>
        /// 根据id获取壁纸详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<DetailResponse> GetWallpaperDetailAsync(string id);


        /// <summary>
        /// 获取用户上传壁纸
        /// </summary>
        /// <param name="reviewStatus"></param>
        /// <param name="page"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        Task<PagedResult<QueryWallpaperResponse>> GetWallpapersAsync(int reviewStatus,string UserId, int page, int pageSize);

        /// <summary>
        /// 小程序首页壁纸
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<PagedResult<WallpapersResponse>> IndexAsync(PageRequest request);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <returns></returns>
        Task<PagedResult<WallpaperPageResponse>> PageAsync(WallpaperQueryRequest wallpaperQueryRequest);


        /// <summary>
        /// 后台审核小程序壁纸
        /// </summary>
        /// <param name="wallpaperId"></param>
        /// <param name="adminId"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        Task ReviewUserWallpaperAsync(string id, string adminId, ReviewWallpaperRequest request);

        /// <summary>
        /// 小程序搜索
        /// </summary>
        /// <param name="wallpaper"></param>
        /// <returns></returns>
        Task<PagedResult<QueryWallpaperResponse>> SearchWallpapersAsync(SearchRequest searchRequest);


        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> UpdatedWallpaperAsync(string id, UpdateWallpaperRequest request);

        /// <summary>
        /// 上传壁纸
        /// </summary>
        /// <param name="upload"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<bool> UploadWallpaperAsync(UploadWallpaperRequest upload, string adminId);



    }
}
